﻿using System.Collections;
using System.Collections.Generic;
using UnityEngine;

/*
（1）public  ：任何公有成员可以被外部的类访问
（2）private:只有同一个类中的函数可以反复问私有成员
（3）protected： 该类内部和继承类可以访问
（4）internal：同一个程序集的对象可以访问
 (5) protected internal:3和4的并集，符合任意一条就可以访问

范围比较 private<internal/protected<protected internal<public
*/

//作用域  函数内声明的变量（包括类对象），当执行完本函数时候，会被自动销毁
// 但是 在类内声明的成员变量（包括类对象），只有当类被销毁时候，管理的变量
// （包括类对象）才会被销毁
namespace MySpace
{
    public class MyClass
    {
        public int a = 10;
        //当类 new 的实例时候，会被自动执行
        public MyClass()//有参构造函数
        {
          
            Debug.Log("MySpace—MyClass【构造函数】执行");
        }
        public MyClass(int value)//无参构造函数
        {
            Debug.Log("传入的值是value"+value+"a的默认是："+a);
            a = value;
            Debug.Log("传入的值是value" + value + "a的默认是：" + a);
        }
        //类对象被销毁时候，会被自动执行
        ~MyClass()
        {
            Debug.Log("MySpace—MyClass【析构函数】执行");
        }
        public void Show()
        {
            Debug.Log("MySpace—MyClass【Show】执行");
        }
        public int Show1()
        {
            return 999;
        }
    }
}

public class StudyBaseClass2 : MonoBehaviour
{
    MySpace.MyClass myClass;
    // Start is called before the first frame update
    void Start()
    {
        //myClass = new MySpace.MyClass();
        //int b = myClass.Show1();
        //Debug.Log(b);

        myClass = new MySpace.MyClass(100);
    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetMouseButton(0))
        {
            Destroy(transform.gameObject);
        }
    }
}
